#ifndef _WIZARD_H_DACHI_
#define _WIZARD_H_DACHI_
#include "Character.h"
#include "../Items/Item.h"
#include <fstream>

class Wizard : public Character{
	public:
	Wizard(std::string name, std::string race,  bool is_male, bool hostile = false, Progress::ach killAch = Progress::ach(NONE, 0),int voice_pitch = 75, int level = 1, int exp_since_level_up = 0);
	void sleep();
	void gather(bool mana = false);
	int getConsumption(bool mag);
	int doAttack(bool mag = false);
	int attackPossible();
	void getStatus();
	std::vector<cmdalt> get_Battle_alternatives();
	void updateMag(int);
	bool updateMana(int);
	void updateMaxMana(int);
	int getMag();
	int getMana();
	int getMaxMana();
	
	void addMaxMana(int change);
	void addMag(int change);
	
	void getStatusAllAttributes();
	
	void setInitialAttributes();
	
	void levelUp();
	bool equippable(Item& item);
	std::string getType();
	
	friend bool saveCharacterExtras (Wizard&, std::ofstream&);
	friend Character* loadCharacter(std::ifstream &);

	private:
	Wizard(){};
	int mana;
	int maxMana;
	int mag;

};
#endif
